Fix feature flag checker and add insiders mode support#1920
Merged
omgitsads merged 5 commits intohttp-stack-2from Jan 29, 2026
Merged
Fix feature flag checker and add insiders mode support#1920omgitsads merged 5 commits intohttp-stack-2from
omgitsads merged 5 commits intohttp-stack-2from
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes feature flag checking functionality for both STDIO and HTTP modes, and adds comprehensive insiders mode support for the HTTP server. The changes enable early access features to be properly gated behind insiders mode and feature flags that can be passed via headers or URL paths.
Changes:
- Uncommented the
WithFeatureCheckercall in STDIO mode to activate feature flag checking - Added HTTP-specific feature checker that validates header-based feature flags against a whitelist
- Implemented insiders mode support with new context helpers and URL routes (
/insiders,/readonly/insiders, etc.) - Added
X-MCP-InsidersandX-MCP-Featuresheader parsing in middleware - Removed unused
Flagsfield fromRequestDepsand refactoredGetFlagsto read from context dynamically - Deleted redundant
features.gofile in favor of integrated feature checker inserver.go
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/ghmcp/server.go | Uncommented feature checker registration for STDIO mode |
| pkg/http/server.go | Added createHTTPFeatureChecker function with whitelist validation and moved feature flag logic from deleted features.go |
| pkg/http/handler.go | Added insiders mode routes and middleware, updated inventory factory to use feature checker |
| pkg/http/middleware/request_config.go | Added parsing for X-MCP-Insiders and X-MCP-Features headers |
| pkg/http/headers/headers.go | Added constants for new MCP headers |
| pkg/context/request.go | Added context helpers for insiders mode and header features |
| pkg/github/dependencies.go | Removed unused Flags field from RequestDeps and updated GetFlags to read InsidersMode from context |
| pkg/http/features.go | Deleted file - functionality moved to server.go |
| docs/remote-server.md | Updated route documentation to correct the pattern from prepend to append (/readonly/insiders instead of /insiders/readonly) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes feature flag checking for STDIO and HTTP modes, and adds insiders mode support for HTTP.
Why
Fixes #
What changed
WithFeatureChecker(featureChecker)in STDIO inventory builderX-MCP-InsidersandX-MCP-Featuresheaders parsing in middleware/insiders,/readonly/insiders,/x/{toolset}/insiders, and/x/{toolset}/readonly/insidersWithInsidersMode/IsInsidersModeandWithHeaderFeatures/GetHeaderFeaturesGetFlagsto now readInsidersModefrom ctxFlagsfield fromRequestDeps/insiders" pattern instead of prependX-MCP-Featuresheader parsingMCP impact
Prompts tested (tool changes only)
Security / limits
Tool renaming
deprecated_tool_aliases.goNote: if you're renaming tools, you must add the tool aliases. For more information on how to do so, please refer to the official docs.
Lint & tests
./script/lint./script/testDocs